#ifndef VECTORS_OPERATIONS
#define VECTORS_OPERATIONS

#include "Types.h"

/*===================*/
/* Vector Operations */
/*===================*/
/* This module allows easier manipulation of vectors - addition, subtraction, size 
 *	calculation and distance between two vectors.
 */

// AddVectors
// ==========
// Accpetcs two vectors and calculates their vectoric sum:
// VecorA+VectorB=(A1, A2)+(B1, B2)=(A1+B1, A2+B2)
// Outputs the sum vector.
TVector AddVectors(TVector VectorA, TVector VectorB);

// SubtractVectors
// ===============
// Accpetcs two vectors and calculates their vectoric subtraction:
// VecorA-VectorB=(A1, A2)-(B1, B2)=(A1-B1, A2-B2)
// Outputs the subtraction vector.
TVector SubtractVectors(TVector VectorA, TVector VectorB);

// VectorSize
// ==========
// Accpetcs a TVector and calculates its size: 
// size(VecorA)=size(A1, A2)=sqrt(A1^2+A2^2)
// Outputs the size of the vector.
double VectorSize(TVector Vector);

// CalculateDistance
// =================
// Accpetcs two vectors and calculates the distance between the two:
// distance(VecorA,VectorB)=size(VectorA-VectorB)
// Outputs the distance between the vectors.
double CalculateDistance(TVector VectorA, TVector VectorB);

// VectorSize
// ==========
// Accpetcs a TVector and multiplies its components by a scalar: 
// m*VecorA=m*(A1, A2)=(m*A1, m*A2)
// Outputs the multiplied vector.
TVector MultiplyVectorWithDouble(TVector Vector, double Double);

#endif
